ci: probe glibc linux natives on musl/Alpine#46
Merged
Merged
Conversation
Add a non-gating (continue-on-error) musl-probe job for linux-x86_64 and linux-aarch64. The natives are built for the *-linux-gnu ABI, so this checks empirically whether they load on musl rather than guessing. The action steps (checkout, setup-java, Maven fetch, javac) run on the glibc host; only the final `java` runs inside an Alpine/musl JDK container (amazoncorretto:25-alpine), so node-based actions never run under musl. If the probe fails, the fix is to add x86_64-linux-musl / aarch64-linux-musl target triples to build-zstd.sh and ship two more native jars. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Instead of a separate musl-probe job, add the two Alpine/musl legs to the smoke matrix (container + experimental flags). Steps branch on matrix.container: native legs run via JBang on the host; musl legs fetch+compile on the glibc host then run java inside an Alpine/musl JDK container. continue-on-error is per-leg (matrix.experimental), so the six native legs gate and the two musl probes don't. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a non-gating
musl-probejob (linux-x86_64, linux-aarch64) that runs the current glibc native inside an Alpine/musl JDK container — settling empirically whether the*-linux-gnunatives load on musl, instead of guessing.How
Action steps (checkout, setup-java, Maven fetch,
javac) run on the glibc host; only the finaljavaruns inamazoncorretto:25-alpine. This sidesteps the "node-based actions need glibc" problem withcontainer:jobs.continue-on-error: trueso a load failure documents the gap without breaking the workflow.Expected outcome
The native is built for
x86_64-linux-gnu/aarch64-linux-gnu(glibc; no-static), so it likely fails to load on stock Alpine (nolibc.so.6). If so, that's the signal to ship musl natives — a cheap fix: addx86_64-linux-musl/aarch64-linux-musltriples tobuild-zstd.sh.If it unexpectedly passes, even better — glibc natives work on musl and no new artifacts are needed.
Either way the probe turns a guess into a fact. Image is swappable if
amazoncorretto:25-alpinehas issues.🤖 Generated with Claude Code